package contatos.patterns.state;

import contatos.model.Contato;
import contatos.presenter.ManterContatoPresenter;
import contatos.view.ManterContatoView;
import javax.swing.JOptionPane;

/**
 *
 * @author felipe
 */
public class VisualizarState extends ContatoState {

    private ManterContatoView view;
    private Contato contato;

    public VisualizarState(ManterContatoPresenter presenter, Contato contato) throws Exception {
        super(presenter);

        this.contato = contato;

        view = this.presenter.getView();

        //desabilitando os campos
        view.getTxtNome().setEnabled(false);
        view.getTxtTelefone().setEnabled(false);
        view.getTxtOperadora().setEnabled(false);
        view.getTxtUF().setEnabled(false);
        view.getBtnSalvar().setEnabled(false);

        //carregando os campos com os dados da pessoa a ser alterada
        view.getTxtNome().setText(contato.getNome());
        view.getTxtTelefone().setText(contato.getTelefone());
        view.getTxtOperadora().setText(contato.getOperadora());
        view.getTxtUF().setText(contato.getUf());

        //desabilitando o botao de salvar
        view.getBtnSalvar().setEnabled(false);

        //mostrando o botao de editar
        view.getBtnEditar().setEnabled(true);
        view.getBtnEditar().setVisible(true);


       
        view.setVisible(true);
    }

    @Override
    public void incluir() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void visualizar() {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    @Override
    public void alterar() {
        try {
            this.presenter.setState(new EditarState(this.presenter, this.contato));
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(view, ex.getMessage());
        }
    }

}
